package ru.spies.content;

import java.util.Collection;

import ru.spies.dbwork.DBQueries;
import ru.spies.dbwork.DBWork;
import ru.spies.entities.Agent;
import ru.spies.entities.Country;
import ru.spies.entities.Department;
import ru.spies.entities.Importance;
import ru.spies.entities.Task;
import ru.spies.entities.TaskType;

public class AddContent extends AbstractContent {

	private static AddContent statThis=null;
	
	private AddContent() {
	}

	public static AddContent getInstance(){
		if (statThis==null){
			statThis = new AddContent();
		}
		return statThis;
	}
	
	public String formAddCountryContent(){
		/*
		 * StringBuffer htmlContent= new StringBuffer();
		htmlContent.append("<p>Имя страны:</p>");
		htmlContent.append("<input name=\"countryName\" class=\"txtBox\" type=\"text\"/>");
		htmlContent.append("<p>Отношения:</p>");
		htmlContent.append("<select name=\"relation\"  class=\"txtBox\">");
		htmlContent.append("<option value=\"friend\">Дружеские</option>");	
		htmlContent.append("<option value=\"neutral\">Нейтральные</option>");	  	
		htmlContent.append("<option value=\"enemy\">Вражеские</option>");	
		htmlContent.append("</select>");
		htmlContent.append("<input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");	
		return htmlContent.toString();
		 */	
		return "<p>Имя страны:</p><input name=\"countryName\" class=\"txtBox\" type=\"text\"/><p>Отношения:</p><select name=\"relation\"  class=\"txtBox\"><option value=\"friend\">Дружеские</option><option value=\"neutral\">Нейтральные</option><option value=\"enemy\">Вражеские</option></select><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">";
	}
	
	public String formAddDepartmentContent(){
		/*
				<p>Наименование отдела:</p>
				<input name="depName" class="txtBox" type="text"/>	
				<p>Страна:</p
				<select name="countryName"  class="txtBox">
				</select>
				<p>Глава отдела:</p>
				<select name="idResident"  class="txtBox">
					<option value="null"></option>
				</select>
				<p>Описание отдела:</p>
				<input name="description" type="text" class="txtBoxWithFewLines" />
				<input name="send" type="submit" class="inFormBtn" value="Отправить">	
		 */
		StringBuffer htmlContent = new StringBuffer("<p>Наименование отдела:</p><input name=\"depName\" class=\"txtBox\" type=\"text\"/><p>Страна:</p><select name=\"countryName\"  class=\"txtBox\">");
		Collection<Country> countries = (Collection<Country>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_COUNTRY_FIND);
		if (countries.size()!=0){
			for (Country country : countries) {
				htmlContent.append(getComboOption(country.getName(),country.getId().toString()));
			}
		} else {
			return COUNTRY_ERROR;
		}
		htmlContent.append("</select><p>Глава отдела:</p><select name=\"idResident\"  class=\"txtBox\"><option value=\"null\">Отсутствует</option>");
		Collection<Agent> agents = (Collection<Agent>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_AGENT_FIND);
		if (agents.size()!=0){
			for (Agent agent : agents) {
				htmlContent.append(getComboOption(agent.getName(),agent.getId().toString()));
			}
		}
		htmlContent.append("</select><p>Описание отдела:</p><textarea name=\"description\" rows=\"10\" cols=\"30\"></textarea><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");
		return htmlContent.toString();
	}
	
	public String formAddImportanceContent(){
		return "<p>Тип секретности:</p><input name=\"type\" class=\"txtBox\" type=\"text\"/><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">";
	}
	
	public String formAddTaskTypeContent(){
		return "<p>Тип задания:</p><input name=\"type\" class=\"txtBox\" type=\"text\"/><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">";
	}

	public String formAddAgentAndTaskContent(){
		/*
		 * <p>Агент:</p>
			<select name="agent"  class="txtBox">	
				options	
			</select>
			<p>Задание:</p>
			<select name="task"  class="txtBox">	
				options
			</select>
			<input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">
		 */
		Collection<Agent> agents= (Collection<Agent>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_AGENT_FIND);
		Collection<Task> tasks = (Collection<Task>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_TASK_FIND);
		if (agents.size()==0){
			return AGENT_ERROR;
		}
		if (tasks.size()==0){
			return TASK_ERROR;
		}
		StringBuffer htmlContent=new StringBuffer("<p>Агент:</p><select name=\"agent\"  class=\"txtBox\">");
		for (Agent agent:agents){
			htmlContent.append(getComboOption(agent.getName(), agent.getId().toString()));
		}
		htmlContent.append("</select><p>Задание:</p><select name=\"task\"  class=\"txtBox\">");
		for (Task task:tasks){
			htmlContent.append(getComboOption(task.getName(), task.getId().toString()));
		}
		htmlContent.append("</select><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");
		return htmlContent.toString();
	}

	public String formAddAgentContent(){
		/*
		 * <p>Имя агента:</p>
			<input name="agentName" class="txtBox" type="text"/>	
			<p>Отдел:</p>
			<select name="depName"  class="txtBox">
			</select>
			<p>Вербовщик:</p>
			<select name="idRecruiter"  class="txtBox">
				<option value="null">Отсутствует</option>
			</select>
			<input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">
		 */
		StringBuffer htmlContent = new StringBuffer("<p>Имя агента:</p><input name=\"agentName\" class=\"txtBox\" type=\"text\"/><p>Отдел:</p><select name=\"depName\"  class=\"txtBox\">");
		Collection<Department> departments = (Collection<Department>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_DEPARTMENT_FIND);
		if (departments.size()!=0){
			for (Department department : departments) {
				htmlContent.append(getComboOption(department.getName(),department.getId().toString()));
			}
		} else {
			return DEPARTMENT_ERROR;
		}
		htmlContent.append("</select><p>Вербовщик:</p><select name=\"idRecruiter\"  class=\"txtBox\"><option value=\"null\">Отсутствует</option>");
		Collection<Agent> agents = (Collection<Agent>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_AGENT_FIND);
		if (agents!=null){
			for (Agent recruiter : agents) {
				if (recruiter.getCountRecruits()<8){
					htmlContent.append(getComboOption(recruiter.getName(),recruiter.getId().toString()));
				}
			}
		}
		htmlContent.append("</select><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");
		return htmlContent.toString();
	}

	public String formAddTaskContent(){
		/*
		 *  <p>Наименование задания:</p>
			<input name="taskName" class="txtBox" type="text"/>	
			<p>Тип секретности:</p>
			<select name="importance"  class="txtBox">
				<option value="null">Пока что отсутствует</option>
			</select>
			<p>Тип задания:</p>
			<select name="taskType"  class="txtBox">
				<option value="null">Пока что отсутствует</option>
			</select>
			<p>Страна, связанная с заданием:</p>
			<select name="countryName"  class="txtBox">
				options
			</select>
			<input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">
		 */
		Collection<Country> countries = (Collection<Country>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_COUNTRY_FIND);
		if (countries.size()==0){
			return COUNTRY_ERROR;
		}
		Collection<Importance> importances= (Collection<Importance>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_IMPORTANCE_FIND);
		Collection<TaskType> tasktypes = (Collection<TaskType>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_TASK_TYPE_FIND);
		StringBuffer htmlContent=new StringBuffer("<p>Наименование задания:</p><input name=\"taskName\" class=\"txtBox\" type=\"text\"/><p>Тип секретности:</p><select name=\"importance\"  class=\"txtBox\">");
		for (Importance importance:importances){
			htmlContent.append(getComboOption(importance.getType(), importance.getId().toString()));
		}
		htmlContent.append("</select><p>Тип задания:</p><select name=\"taskType\"  class=\"txtBox\"><option value=\"null\">Пока что отсутствует</option>");
		if (tasktypes.size()!=0){
			for (TaskType task:tasktypes){
				htmlContent.append(getComboOption(task.getTypeName(), task.getId().toString()));
			}
		}
		htmlContent.append("</select><p>Страна, связанная с заданием:</p><select name=\"countryName\"  class=\"txtBox\">");
		for (Country country: countries){
			htmlContent.append(getComboOption(country.getName(), country.getId().toString()));
		}
		htmlContent.append("</select><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");
		return htmlContent.toString();
	}

	public String formAddDocumentContent(){
		/*
		 *  <p>Ссылка на файл:</p>
			<input name="textLink" class="txtBox" type="text"/>	
			<p>Тип секретности:</p>
			<select name="importance"  class="txtBox">
				options
			</select>
			<p>Задание:</p>
			<select name="task"  class="txtBox">
				<option value="null">Пока что отсутствует</option>
			</select>
			<input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">
		 */
		Collection<Importance> importances= (Collection<Importance>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_IMPORTANCE_FIND);	
		if (importances.size()==0){
			return IMPORTANCE_ERROR;
		}
		Collection<Task> tasks = (Collection<Task>) DBWork.getInstance().getTableObjects(DBQueries.QUERY_TASK_FIND);
		StringBuffer htmlContent=new StringBuffer("<p>Ссылка на файл:</p><input name=\"textLink\" class=\"txtBox\" type=\"text\"/><p>Тип секретности:</p><select name=\"importance\"  class=\"txtBox\">");
		for (Importance importance:importances){
			htmlContent.append(getComboOption(importance.getType(), importance.getId().toString()));
		}
		htmlContent.append("</select><p>Задание:</p><select name=\"task\"  class=\"txtBox\"><option value=\"null\">Пока что отсутствует</option>");
		if (tasks.size()!=0){
			for (Task task:tasks){
				htmlContent.append(getComboOption(task.getName(), task.getId().toString()));
			}
		}	
		htmlContent.append("</select><input name=\"send\" type=\"submit\" class=\"inFormBtn\" value=\"Отправить\">");
		return htmlContent.toString();
	}
	
}
